package com.example.cushion;

import android.app.Application;
import android.content.Context;
import android.support.multidex.MultiDex;
import android.view.View;

import org.itzheng.and.baseutils.BaseUtils;
import org.itzheng.and.baseutils.log.LogHelper;
import org.itzheng.and.baseutils.log.processor.impl.LoggerProcessor;
import org.itzheng.and.baseutils.log.processor.impl.SysLogProcessor;
import org.itzheng.and.baseutils.ui.UIUtils;
import org.itzheng.and.ble.utils.BleOptionUtils;

import java.util.ArrayList;
import java.util.List;

import cn.bingoogolapple.swipebacklayout.BGASwipeBackHelper;

/**
 * Title:<br>
 * Description: <br>
 *
 * @email ItZheng@ZoHo.com
 * Created by itzheng on 2018-3-5.
 */
public class App extends Application {
    private static App mApp;
    private BleOptionUtils mBleOptionUtils;

    @Override
    public void onCreate() {
        super.onCreate();
        mApp = this;
        initUtils();
    }

    public static App getInstance() {
        return mApp;
    }

    private void initUtils() {
        //全局唯一ble操作工具
        mBleOptionUtils = BleOptionUtils.newInstance(this);
        BaseUtils.init(this);
        initSwipeActivity();
//        LogHelper.init(new LoggerProcessor());
    }

    /**
     * 必须在 Application 的 onCreate 方法中执行 BGASwipeBackHelper.init 来初始化滑动返回
     * 第一个参数：应用程序上下文
     * 第二个参数：如果发现滑动返回后立即触摸界面时应用崩溃，请把该界面里比较特殊的 View 的 class 添加到该集合中，目前在库中已经添加了 WebView 和 SurfaceView
     */
    private void initSwipeActivity() {
        List<Class<? extends View>> problemViewClassList = new ArrayList<>();
//        problemViewClassList.add(DrawerLayout.class);
        BGASwipeBackHelper.init(this, null);
    }

    /**
     * 蓝牙操作工具
     *
     * @return
     */
    public BleOptionUtils getBleOptionUtils() {
        return mBleOptionUtils;
    }

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
}
